1. Technical Field
The present invention relates generally to a data-processing system utilizing three-dimensional rendering and, more particularly, to a data-processing system using rendered two-dimensional images for generating pseudo-three-dimensional views. More particularly still, the present invention is directed towards utilizing selected prerendered views of objects in a manner sufficient to provide adequate viewability as well as providing image scaling to provide correct depth perception of the prerendered three-dimensional views.
2. Description of the Related Art
Computer systems are well known to those skilled in the art. In fact, computers have become quite common in both the business world and at home. Computers are used because of their ability to perform complex tasks quickly and efficiently. The computers programs, or software, which include the user interfaces, have advanced from character-based user interfaces to graphical-oriented user interfaces, also known as graphical user interfaces (GUI).
These GUIs have advanced to resemble a three-dimensional xe2x80x9cplacexe2x80x9d or virtual world that includes rooms or scenes to provide a more easily understood or familiar metaphor for organizing visual representations of objects within the computer. While the notion of using a 3D virtual world is helpful for some users, generalized user interfaces using virtual world techniques are usually based on 3D drawings of the environment and all the objects it contains. While the use of 3D drawings can be used on sufficiently equipped systems that have powerful microprocessors or add-on devices to process the complex 3D images, this computational overhead on the most popular personal computers (PC) systems are wanting in the ability to render 3D drawings on the fly in their full complexity.
When creating a xe2x80x9cplace user interfacexe2x80x9d (Place Ul), the virtual world can be built using prerendered views of the world. Objects contained in the computer can then be added. Unfortunately, when a 2D image is created for an object, it assumes a fixed viewing angle and size. While an object may be correctly drawn so that it appears correct in one place, moving the object to a different location in a 3D world results in visual discontinuity and breaks the xe2x80x9cplacexe2x80x9d paradigm. Therefore, it would be useful to have a simpler computational model that uses prerendered objects to build good-performing generalized virtual world user interfaces on currently available 2D-based personal computers.
One solution to generating a Place Ul is to pretender all the possible 3D views ahead of time and display the resulting 2D images based on where the user places the viewing point. This technique provides a nice-performing Place Ul since it only uses 2D versions of the prerendered images and it has greater prefixed, predefined viewpoints. Unfortunately, the world itself is static in this implementation and needs more interactive characteristics by adding visual representations of objects contained in the computer. The combination of prerendered images of the world, a grid of fixed viewing points within the world, and the visual representations of live objects contained in the world constitute a pseudo-3D world for building a Place Ul. Unfortunately, adding objects anywhere in the virtual world requires the object to be drawn in the proper viewing angle. This is a problem for 2D-based systems because of all of the possible viewing angles and surfaces upon which objects may be attached or laid.
The use of the grid will now be described and illustrated in FIG. 1. To provide effective movement in a Place Ul, the virtual space is overlaid with a finite set of points at which a user may be positioned as illustrated in the schematic diagram of FIG. 1. This set of discreet navigation points defines the grid of possible points from which the background images and objects it contains may be viewed. This grid 10 of viewing points is defined by a cartesian coordinate and heading within the 3D space of the place. Together, the cartesian coordinate and heading provide the location and direction from which the user is currently viewing the place. Within the diagram of FIG. 1, the dash lines represent grid lines while the dashed circles represent viewing circles.
When the user is at a point on the grid such that either point A, B, or C, or where any of the viewing circles exist, the prerendered view of the background is displayed. As the user turns left or right, the image is that defined for the next available heading defined for that point in the grid. Turning can be constrained to orthogonal views but is not necessary. Further, turning can be done by rotating about the viewpoint or by traversing points around the viewing circle. Either turning technique may be implemented.
Once a position and heading into 3D virtual space have been selected, the Place Ul allows interaction with objects in the space. When an object is added to a space, it is desirable for that object to be displayed in the proper perspective for the environment, which means the viewing angle such as the point and heading of the user. Thus, if a wall clock is placed on the wall at point 3 in FIG. 1, it will appear in the familiar front or orthogonal view for user C""s view; however, if it is placed at points 1 or 2, a different view is required for location A or C. Furthermore, the 3D space and grid techniques cannot guarantee a fixed number of viewing angles.
It is therefore one object of the present invention to provide a data-processing system utilizing three-dimensional rendering.
It is another object of the present invention to provide a data-processing system using rendered two-dimensional images for generating pseudo-three-dimensional views.
More particularly still, it is yet another object of the present invention to provide direction towards utilizing selected prerendered views of objects in a manner sufficient to provide adequate viewability as well as providing image scaling to provide correct depth perception of the prerendered three-dimensional views.
According to the present invention, a computer system is disclosed, which typically includes a central processing unit, a bus, and a memory store, coupled to the central processing unit, that includes a psuedo 3D rendering mechanism. Typically, the rendering mechanism is loaded in the memory store, but can be implemented in an application specific integrated circuit further coupled to the central processing unit via the bus. The psuedo 3D rendering mechanism is used to generate a psuedo 3D rendered virtual image using only two dimensional prerendered selected views of 3D objects to be displayed. Further, as the viewing orientation shifts from point to point, an adequate three-dimensional rendering is provided based on these selected views.
These selected views are designed for display on a display device further connected to the computer system. Initially, the rendering mechanism generates a grid of virtual space overlaying a finite set of points at which the user may be positioned. This virtual space is a three-dimensional world much like a virtual reality. The grid of viewing points is defined by cartesian coordinate and a heading within that virtual space.
The rendering mechanism pretenders a selected number of views of each object to be viewed based on a set of rules that provide xe2x80x9cgood enoughxe2x80x9d imaging. In the virtual world, a place user interface (Ul) generating mechanism is also coupled to the Psuedo 3D rendering mechanism, which may be implemented via software and stored within the memory store, or implemented in an application specific integrated circuit, and then generates a place Ul for display in which the psuedo rendering is also displayed. The rendering mechanism can also scale the image of a selected object based on the view of that particular object. Also, within the virtual space, each object placed therein is orientated with an object heading direction relative to the grid heading to define each object""s orientation view.
A computer program product is also provided for based upon the implementable software aspects of the rendering mechanism. Likewise, a method of displaying 3D virtual images on a display device is also disclosed. The basic steps of the method include building a place user interface for display, defining a group of objects for display in that place Ul, generating a selected number of prerendered views for each group of objects for display, storing the selected number of prerendered views, establishing surface maps within the place Ul, and then utilizing the surface maps to select a desired one of the stored selected number of prerendered views of each object to be illustrated. When the method implements the generating of selected number of prerendered views, a particular set of xe2x80x9cgood enoughxe2x80x9d rules is used in selecting the prerendered views. An additional step may include performing image scaling of any of the desired prerendered views to be illustrated.
The above as well as additional objectives, features, and advantages of the present invention will become apparent in the following detailed written description.